package com.hhs.storage.bean;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.ibatis.annotations.Param;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.RequestBody;

import java.time.LocalDateTime;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author hhs
 * @since 2023-05-12
 */
@Data
public class LeaderTask implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 未完成
     */
    public static final Integer STATE_UNCOMPLETED = 0;
    /**
     * 状态完成
     */
    public static final Integer STATE_COMPLETE = 1;
      @TableId(value = "id", type = IdType.AUTO)
      private Integer id;

      /**
     * 标题
     */
      private String title;

      /**
     * 内容
     */
      private String content;

      /**
     * 状态0-未完成 1-已完成
     */
      private Integer status;

      /**
     * 任务执行人
     */
      private String userId;
      @TableField(exist = false)
      private BaseUser user;
      /**
     * 领导
     */
      private String leaderId;
      @TableField(exist = false)
      private BaseUser leader;
      /**
     * 开始日期
     */
      @DateTimeFormat(pattern = "yyyy-MM-dd")
      @JSONField(format="yyyy-MM-dd")
      private LocalDate leaderTaskStartDate;

      /**
     * 结束日期
     */
      @DateTimeFormat(pattern = "yyyy-MM-dd")
      @JSONField(format="yyyy-MM-dd")
      private LocalDate leaderTaskEndDate;

      /**
     * 时间
     */
      @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
      @JSONField(format="yyyy-MM-dd HH:mm:ss")
      private LocalDateTime createTime;
    /**
     * 完成时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime completeTime;
    /**
     * 星级
     */
    private Integer level;

    //领导设置的工序
    @TableField(exist = false)
    private List<ProjectWorkFlow> leaderWk=new ArrayList<>();

    //职员自己设置的工序
    @TableField(exist = false)
    private List<ProjectWorkFlow> subWk=new ArrayList<>();
    //职员的任务内容
    private String subContent;
    //职员的进度条
    private Integer subProgress;
    //成员
    @TableField(exist = false)
    String memberIds;
    //操作类型
    @TableField(exist = false)
    String type;
    //下属职员是否已经阅读的标识，0 没有 1已阅读
    private Integer readFlag;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime readTime;
}
